<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content=
    "application/xhtml+xml; charset=iso-8859-1" />
    <title>
      5.12.&nbsp;Expect-5.45
    </title>
    <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
    "text/css" media="print" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  </head>
  <body class="lfs" id="lfs-8.0-systemd">
    <div class="navheader">
      <h4>
        Linux From Scratch - Version 8.0-systemd
      </h4>
      <h3>
        Chapter&nbsp;5.&nbsp;Constructing a Temporary System
      </h3>
      <ul>
        <li class="prev">
          <a accesskey="p" href="tcl.html" title="Tcl-core-8.6.6">Prev</a>
          <p>
            Tcl-core-8.6.6
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="dejagnu.html" title="DejaGNU-1.6">Next</a>
          <p>
            DejaGNU-1.6
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="chapter05.html" title=
          "Chapter&nbsp;5.&nbsp;Constructing a Temporary System">Up</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Linux From Scratch - Version 8.0-systemd">Home</a>
        </li>
      </ul>
    </div>
    <div class="wrap" lang="en" xml:lang="en">
      <h1 class="sect1">
        <a id="ch-tools-expect" name="ch-tools-expect"></a>5.12. Expect-5.45
      </h1>
      <div class="package" lang="en" xml:lang="en">
        <p>
          The Expect package contains a program for carrying out scripted
          dialogues with other interactive programs.
        </p>
        <div class="segmentedlist">
          <div class="seglistitem">
            <div class="seg">
              <strong class="segtitle">Approximate build time:</strong>
              <span class="segbody">0.1 SBU</span>
            </div>
            <div class="seg">
              <strong class="segtitle">Required disk space:</strong>
              <span class="segbody">4.3 MB</span>
            </div>
          </div>
        </div>
      </div>
      <div class="installation" lang="en" xml:lang="en">
        <h2 class="sect2">
          5.12.1. Installation of Expect
        </h2>
        <p>
          First, force Expect's configure script to use <code class=
          "filename">/bin/stty</code> instead of a <code class=
          "filename">/usr/local/bin/stty</code> it may find on the host
          system. This will ensure that our test suite tools remain sane for
          the final builds of our toolchain:
        </p>
        <pre class="userinput">
<kbd class="command">cp -v configure{,.orig}
sed 's:/usr/local/bin:/bin:' configure.orig &gt; configure</kbd>
</pre>
        <p>
          Now prepare Expect for compilation:
        </p>
        <pre class="userinput">
<kbd class="command">./configure --prefix=/tools       \
            --with-tcl=/tools/lib \
            --with-tclinclude=/tools/include</kbd>
</pre>
        <div class="variablelist">
          <p class="title">
            <strong>The meaning of the configure options:</strong>
          </p>
          <dl class="variablelist">
            <dt>
              <span class="term"><em class=
              "parameter"><code>--with-tcl=/tools/lib</code></em></span>
            </dt>
            <dd>
              <p>
                This ensures that the configure script finds the Tcl
                installation in the temporary tools location instead of
                possibly locating an existing one on the host system.
              </p>
            </dd>
            <dt>
              <span class="term"><em class=
              "parameter"><code>--with-tclinclude=/tools/include</code></em></span>
            </dt>
            <dd>
              <p>
                This explicitly tells Expect where to find Tcl's internal
                headers. Using this option avoids conditions where
                <span class="command"><strong>configure</strong></span> fails
                because it cannot automatically discover the location of
                Tcl's headers.
              </p>
            </dd>
          </dl>
        </div>
        <p>
          Build the package:
        </p>
        <pre class="userinput">
<kbd class="command">make</kbd>
</pre>
        <p>
          Compilation is now complete. As discussed earlier, running the test
          suite is not mandatory for the temporary tools here in this
          chapter. To run the Expect test suite anyway, issue the following
          command:
        </p>
        <pre class="userinput">
<kbd class="command">make test</kbd>
</pre>
        <p>
          Note that the Expect test suite is known to experience failures
          under certain host conditions that are not within our control.
          Therefore, test suite failures here are not surprising and are not
          considered critical.
        </p>
        <p>
          Install the package:
        </p>
        <pre class="userinput">
<kbd class="command">make SCRIPTS="" install</kbd>
</pre>
        <div class="variablelist">
          <p class="title">
            <strong>The meaning of the make parameter:</strong>
          </p>
          <dl class="variablelist">
            <dt>
              <span class="term"><em class=
              "parameter"><code>SCRIPTS=""</code></em></span>
            </dt>
            <dd>
              <p>
                This prevents installation of the supplementary Expect
                scripts, which are not needed.
              </p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="content" lang="en" xml:lang="en">
        <h2 class="sect2">
          <a id="contents-expect" name="contents-expect"></a>5.12.2. Contents
          of Expect
        </h2>
        <div class="segmentedlist">
          <div class="seglistitem">
            <div class="seg">
              <strong class="segtitle">Installed program:</strong>
              <span class="segbody">expect</span>
            </div>
            <div class="seg">
              <strong class="segtitle">Installed library:</strong>
              <span class="segbody">libexpect-5.45.so</span>
            </div>
          </div>
        </div>
        <div class="variablelist">
          <h3>
            Short Descriptions
          </h3>
          <table border="0" class="variablelist">
            <colgroup>
              <col align="left" valign="top" />
              <col />
            </colgroup>
            <tbody>
              <tr>
                <td>
                  <p>
                    <a id="expect" name="expect"></a><span class=
                    "term"><span class=
                    "command"><strong>expect</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Communicates with other interactive programs according to
                    a script
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libexpect" name="libexpect"></a><span class=
                    "term"><code class=
                    "filename">libexpect-5.45.so</code></span>
                  </p>
                </td>
                <td>
                  <p>
                    Contains functions that allow Expect to be used as a Tcl
                    extension or to be used directly from C or C++ (without
                    Tcl)
                  </p>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
    </div>
    <div class="navfooter">
      <ul>
        <li class="prev">
          <a accesskey="p" href="tcl.html" title="Tcl-core-8.6.6">Prev</a>
          <p>
            Tcl-core-8.6.6
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="dejagnu.html" title="DejaGNU-1.6">Next</a>
          <p>
            DejaGNU-1.6
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="chapter05.html" title=
          "Chapter&nbsp;5.&nbsp;Constructing a Temporary System">Up</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Linux From Scratch - Version 8.0-systemd">Home</a>
        </li>
      </ul>
    </div>
  </body>
</html>
